В статье
https://imgur.com/gallery/huZRM
автор размышляет на тему сравнения языков программирования с различными видами оружия. С++ предлагается сравнять с нунчаками: в умелых руках - это эффективный инструмент, а в руках новичка - опасность для собственного здоровья. Это сравнение очевидно навеяно мнением об С++ как небезопасном языке программирования. Некоторые новые языки даже используют это мнение для собственного продвижения.
Но какие конкретно опасности скрываются за термином «небезопасный»? Развёрнутый ответ очевидно поднимет несколько направлений, одним из которых будет кибербезопасность.
В докладе я хочу показать простые примеры эксплуатации уязвимостей C/C++ кода:
* выполнение shell-кода на стеке
* Возврат в libc
* Переписывание vptr
* Переполнение кучи
Но главный упор сделать на средства защиты от подобных атак:
* канарейка на стеке
* ASLR
* Неисполнимые области
* Тестирование и санитайзеры
* Fuzzing
* SDL процессы